An out-of-order processor typically includes a re-order queue (ROQ) to permit instructions to be executed out of program order. A re-order queue is used to store instructions (or other information) that are to be executed later by a processing unit. Generally, a re-order queue is implemented using a circular buffer, with a take pointer and a put pointer keeping track of instructions that are taken out of the re-order queue and stored in the re-order queue, respectively. For proper execution of the instructions, the processing unit often needs to determine the relative ages of two instructions that are received from a re-order queue (for example, whether a first instruction entered the queue prior to, or subsequent to a second instruction). In a conventional system, the processing unit receives (e.g., from the re-order queue) a vector comprising a list, the list listing relative ages of all the instructions. However, generating, transmitting and/or processing such a list consumes extensive computational resources (e.g., needs additional wiring between the re-order queue and the execution unit, needs clock cycles to perform these operations, etc.). In another conventional system, the processing unit keeps track of movements of the take pointer and the put pointer of the queue, and/or keeps track of the instructions that are stored in and taken out of the queue, which also consumes extensive computational resources.